﻿using System;
using System.Collections.Generic;
using System;
using System.IO;
using System.Web.UI.WebControls;
using Negocio.Avaliacao;
using Negocio.Marca;
using Negocio.SubtipoProduto;
using Negocio.Produto;
using Negocio.TipoProduto;
using Negocio.Usuario;

namespace qbaproject.Avaliacao.Incluir
{
    public partial class incluirAvaliacao : System.Web.UI.Page
    {
        int idUsuario;
        int idProduto;
        private int nrNotaGeral;
        private int nrNotaPreco;
        private int nrNotaQualidade;
        private int nrNotaTempoUso;
        private string teContras;
        private string tePros;
        double num;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                carregarDdl();
            }
        }

        public void carregarDdl()
        {
            /*var obNSubtipoProduto = new NSubtipoProduto();
            var obNMarca = new NMarca();
            var obNTipoProduto = new NTipoProduto();*/
            var obNProduto = new NProduto();

            
            //Carregar tipo de produto
            ddlProdutos.DataSource = obNProduto.pegarProdutos();
            ddlProdutos.DataBind();
            ddlProdutos.Items.Insert(0, new ListItem("Selecionar o produto", "0"));

            var obNUsuario = new NUsuario();

            //Carregar usuarios colaboradores
            ddlUsuarios.DataSource = obNUsuario.pegarUsuarios(null, 0, null, null, null, null, null, null, null, null, null, null, 0, 0, 0, 0, 0, 4);
            ddlUsuarios.DataBind();
            ddlUsuarios.Items.Insert(0, new ListItem("Selecionar o usuário", "0"));
            /*
            //Carregar tipo de produto
            ddlTiposProduto.DataSource = obNTipoProduto.pegarTiposProduto();
            ddlTiposProduto.DataBind();
            ddlTiposProduto.Items.Insert(0, new ListItem("Selecionar o tipo de produto", "0"));

            //Carregar subtipo de produto
            ddlSubtiposProduto.DataSource = obNSubtipoProduto.pegarSubtiposProduto();
            ddlSubtiposProduto.DataBind();
            ddlSubtiposProduto.Items.Insert(0, new ListItem("Selecionar o subtipo de produto", "0"));

            //Carregar marcas
            ddlMarcas.DataSource = obNMarca.pegarMarcas();
            ddlMarcas.DataBind();
            ddlMarcas.Items.Insert(0, new ListItem("Selecionar a marca do produto", "0"));*/


        }

        protected void lkbSalvar_Click(object sender, EventArgs e)
        {
            if (verificarForm())
            {
                var obNAvaliacao = new NAvaliacao();

                obNAvaliacao.teAvaliacao = editorTeAvaliacao.Content;
                obNAvaliacao.teContras = txtTeContras.Text;
                obNAvaliacao.tePros = txtTePros.Text;
                obNAvaliacao.nrNotaGeral = Convert.ToInt32(txtNrNotaGeral.Text);
                obNAvaliacao.nrNotaPreco = Convert.ToInt32(txtNrNotaPreco.Text);
                obNAvaliacao.nrNotaQualidade = Convert.ToInt32(txtNrNotaQualidade.Text);
                obNAvaliacao.nrNotaTempoUso = Convert.ToInt32(txtNrNotaTempoUso.Text);
                obNAvaliacao.idProduto = Convert.ToInt32(ddlProdutos.SelectedValue);
                obNAvaliacao.idUsuario = Convert.ToInt32(ddlUsuarios.SelectedValue);
                obNAvaliacao.dtAvaliacao = DateTime.Now;

                if (obNAvaliacao.Salvar())
                {
                    divMsnIncluirSucesso.Visible = true;
                    divMsnIncluirAtencao.Visible = false;
                }
                else
                {
                    divMsnIncluirSucesso.Visible = false;
                    divMsnIncluirAtencao.Visible = true;
                }
            }
            else
            {
                divMsnIncluirSucesso.Visible = false;
                divMsnIncluirAtencao.Visible = true;
            }
        }

        public bool verificarForm()
        {
            var boForm = true;

            //idUsuario = Convert.ToInt32(ddlUsuarios.SelectedValue);
            idUsuario = 1;
            if (idUsuario == 0)
            {
                boForm = false;
                lblUsuarioObrigatorio.Text = "O usuário é obrigatório!";
            }
            else
            {
                lblUsuarioObrigatorio.Text = "";
            }

            idProduto = Convert.ToInt32(ddlProdutos.SelectedValue);
            if (idProduto == 0)
            {
                boForm = false;
                lblProdutoObrigatorio.Text = "O produto é obrigatório!";
            }
            else
            {
                lblProdutoObrigatorio.Text = "";
            }

            if (Double.TryParse(txtNrNotaGeral.Text, out num))
            {
                nrNotaGeral = Convert.ToInt32(txtNrNotaGeral.Text);
                if (nrNotaGeral == 0)
                {
                    boForm = false;
                    lblNrNotaGeralObrigatoria.Text = "A nota geral é obrigatória!";
                }
                else
                {
                    lblProdutoObrigatorio.Text = "";
                }

                if (nrNotaGeral > 10 || nrNotaGeral < 1)
                {
                    boForm = false;
                    lblNrNotaGeralObrigatoria.Text = "A nota deve estar entre 1 e 10";
                }
                else
                {
                    lblNrNotaGeralObrigatoria.Text = "";
                }
            }
            else
            {
                boForm = false;
                lblNrNotaGeralObrigatoria.Text = "A nota deve ser um número";
            }

            
            
            if (Double.TryParse(txtNrNotaPreco.Text, out num))
            {
                nrNotaPreco = Convert.ToInt32(txtNrNotaPreco.Text);

                if (nrNotaPreco == 0)
                {
                    boForm = false;
                    lblNrNotaPrecoObrigatoria.Text = "A nota de preço é obrigatória!";
                }
                else
                {
                    lblNrNotaPrecoObrigatoria.Text = "";
                }

                if (nrNotaPreco > 10 || nrNotaPreco < 1)
                {
                    boForm = false;
                    lblNrNotaPrecoObrigatoria.Text = "A nota deve estar entre 1 e 10";
                }
                else
                {
                    lblNrNotaPrecoObrigatoria.Text = "";
                }
            }
            else
            {
                boForm = false;
                lblNrNotaPrecoObrigatoria.Text = "A nota deve ser um número";
            }

            if (Double.TryParse(txtNrNotaQualidade.Text, out num))
            {
                nrNotaQualidade = Convert.ToInt32(txtNrNotaQualidade.Text);

                if (nrNotaQualidade == 0)
                {
                    boForm = false;
                    lblNrNotaQualidadeObrigatoria.Text = "A nota de qualidade é obrigatória!";
                }
                else
                {
                    lblNrNotaQualidadeObrigatoria.Text = "";
                }

                if (nrNotaQualidade > 10 || nrNotaQualidade < 1)
                {
                    boForm = false;
                    lblNrNotaQualidadeObrigatoria.Text = "A nota deve estar entre 1 e 10";
                }
                else
                {
                    lblNrNotaQualidadeObrigatoria.Text = "";
                }
            }
            else
            {
                boForm = false;
                lblNrNotaQualidadeObrigatoria.Text = "A nota deve ser um número";
            }

            if (Double.TryParse(txtNrNotaTempoUso.Text, out num))
            {
                nrNotaTempoUso = Convert.ToInt32(txtNrNotaTempoUso.Text);
                if (nrNotaTempoUso == 0)
                {
                    boForm = false;
                    lblNrNotaTempoUsoObrigatoria.Text = "A nota de tempo de uso é obrigatória!";
                }
                else
                {
                    lblNrNotaTempoUsoObrigatoria.Text = "";
                }
                if (nrNotaTempoUso > 10 || nrNotaTempoUso < 1)
                {
                    boForm = false;
                    lblNrNotaTempoUsoObrigatoria.Text = "A nota deve estar entre 1 e 10";
                }
                else
                {
                    lblNrNotaTempoUsoObrigatoria.Text = "";
                }
            }
            else
            {
                boForm = false;
                lblNrNotaTempoUsoObrigatoria.Text = "A nota deve ser um número";
            }

            if (string.IsNullOrEmpty(txtTePros.Text))
            {
                boForm = false;
                lblTeProsObrigatorio.Text = "O campo prós é obrigatório!";
            }
            else
            {
                lblTeProsObrigatorio.Text = "";
            }

            if (string.IsNullOrEmpty(txtTeContras.Text))
            {
                boForm = false;
                lblTeContrasObrigatorio.Text = "O campo contras é obrigatório!";
            }
            else
            {
                lblTeContrasObrigatorio.Text = "";
            }

            if (string.IsNullOrEmpty(editorTeAvaliacao.Content))
            {
                boForm = false;
                lblTeAvaliacaoObrigatorio.Text = "O campo avaliação é obrigatório!";
            }
            else
            {
                lblTeAvaliacaoObrigatorio.Text = "";
            }
            return boForm;
        }

        protected void lnk_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Avaliacao/Consultar/consultarAvaliacao.aspx");
        }

        protected void ddlTiposProduto_SelectedIndexChanged(object sender, EventArgs e)
        {
            /*var idTipoProduto = Convert.ToInt32(ddlTiposProduto.SelectedValue);
            var obNSubtipoProduto = new NSubtipoProduto();
            ddlSubtiposProduto.DataSource = obNSubtipoProduto.pegarSubtiposProduto(idTipoProduto);
            ddlSubtiposProduto.DataBind();
            ddlSubtiposProduto.Items.Insert(0, new ListItem("Selecionar o subtipo de produto", "0"));*/

        }

        protected void ddlSubtiposProduto_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        protected void ddlMarcas_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        protected void txtNrNotaPreco_TextChanged(object sender, System.EventArgs e)
        {
            
           
            
        }

        protected void txtNrNotaQualidade_TextChanged(object sender, System.EventArgs e)
        {
           

        }

        protected void txtNrNotaTempoUso_TextChanged(object sender, System.EventArgs e)
        {
            
        }

        protected void txtNrNotaGeral_TextChanged(object sender, System.EventArgs e)
        {
            
        }
    }
}